Memory systems typically include many millions of storage cells to store bits of information. Any of the many storage cells can fail over the useful life of the memory system. Proper management of the failing elements in the memory system is important for longevity and usefulness.
One conventional way to reduce the impact of failing memory bits is to generate error correction information such as error correction codes, parity information, etc., for corresponding data stored in a memory system. In certain instances, the error correction information can be used to restore corrupted data as a result of one or more failing memory cells.
More specifically, according to conventional techniques, a memory system may include a sequence of multiple memory devices to store data. A technique known as data striping can be used to store a respective portion of corresponding data in each of the multiple memory devices in the sequence. In general, in accordance with data striping, a first portion of a data string is stored in a first memory device, a second portion of the data string is stored in a second memory device, a third portion of the data string is stored in a third memory device, and so on.
When storing a corresponding portion of data in a memory device, a data management function generates corresponding error correction information. If desired, the generated error correction information can be stored in the memory device along with the portion of data.
When subsequently reading the portion of data stored in memory device, the data management function can use error correction information to determine whether one or more bits in the portion of data has been corrupted. If so, the data management access function uses corresponding stored error correction information to reconstruct the original data based on a combination of the data read from the memory device and the corresponding error correction information. Thus, upon detecting a condition such as corruption of data stored in a particular device in a sequence of memory devices, the corresponding error correction information stored in the particular device can be used to restore the corrupted data.